#ifndef REQUEST_HANDLER_SERVER_HH
# define REQUEST_HANDLER_SERVER_HH

class Server;
class World;

//to put in booby common
class Connection;
class Map;
class Object;
class Text;

class RequestHandler
{
public:
  virtual ~RequestHandler() {}

  virtual void treat (Connection* rq) = 0;
  virtual void treat (Map* rq) = 0;
  virtual void treat (Object* rq) = 0;
  virtual void treat (Text* rq) = 0;
};
//end to put in boobycommon

class RequestHandlerServer
{
public:
  RequestHandlerServer (Server* server);

  virtual void treat (Connection* rq);
  virtual void treat (Map* rq);
  virtual void treat (Object* rq);
  virtual void treat (Text* rq);

protected:
  Server* server_;
};

class RequestHandlerWorld
{
public:
  RequestHandlerWorld (Server* server, World* world);

  virtual void treat (Connection* rq);
  virtual void treat (Map* rq);
  virtual void treat (Object* rq);
  virtual void treat (Text* rq);

protected:
  Server* server_;
  World* world_;
  //  Physic* ph_;
  // Add physic here
};

#endif /// !REQUEST_HANDLER_SERVER_HH
